.\" source:
.\"   /var/cvs/projects/debian/cracklib/debian/dpkg.src/cracklib2-dev.FascistCheck.3.in,v
.\"
.\" revision:
.\"   @(#) cracklib2-dev.FascistCheck.3.in,v 1.6 1999/03/29 15:30:21 jplejacq Exp
.\"
.\" copyright:
.\"   Copyright (C) 1998, 1999 Jean Pierre LeJacq <jplejacq@quoininc.com>
.\"
.\"   Distributed under the GNU GENERAL PUBLIC LICENSE.
.\"
.TH FascistCheck 3 "Wed, 3 Oct 2001 01:37:09 +0100" "2.7-8.5" "Debian GNU/Linux manual"
.SH NAME
FascistCheck \- a pro-active password checker library
.SH SYNOPSIS
.B #include <crack.h>
.sp
.B "static char const CRACKLIB_DICTPATH[] = \ .\|.\|.;"
.sp
.B "extern char const *"
.br
.B "FascistCheck(char const passwd[], char const dictpath[]);"
.SH DESCRIPTION
cracklib is a library containing the
.B FascistCheck
C function which may be used in a "passwd" like program.  The idea is
simple: try to prevent users from choosing passwords that could be
guessed by "crack" by filtering them out, at source.  cracklib is an
offshoot of the the version 5 of the "crack" software and contains a
considerable number of ideas nicked from the new software.

The first formal argument
.B password
is the potential password.  The second formal argument
.B dictpath
is the full path name + filename prefix of the cracklib
dictionary database.
.B FascistCheck
returns
the NULL pointer for a good password, or a pointer to a diagnostic
string if it is a weak password.

The database is in a binary format generated by the utilities
.BR crack_mkdict (8)
and
.BR crack_packer (8).
On a Debian system the database is located in the directory defined by 
the static constant
.B CRACKLIB_DICTPATH
and is set to /var/cache/cracklib/cracklib_dict.  None of the subroutines in the
cracklib libraries have this location hard-coded into their
implementations.  It is generated daily with the program
/etc/cron.daily/cracklib.
.SH FILES
.TP
.I /var/cache/cracklib/cracklib_dict.[hwm|pwd|pwi]
cracklib dictionary database files used by utilities.
.TP
.I /etc/cron.daily/cracklib
cracklib daily cron program to rebuild the cracklib dictionary database.
.TP
.I /etc/cracklib/cracklib.conf
cracklib configuration file used by the cracklib daily cron program to
rebuild the cracklib dictionary database.
.TP
.I /usr/sbin/crack_mkdict
cracklib shell script to create initial list of words for dictionary
database.
.TP
.I /usr/share/doc/cracklib2-dev/examples
Example
.BR cc (1)
source files that show how
.B FascistCheck
is used.
.SH SEE ALSO
.BR crack_teststr (8),
.BR crack_mkdict (8),
.BR update\-cracklib (8)
.br
/usr/share/doc/cracklib2-dev/examples
.br
/usr/share/doc/cracklib2/cracklib2.html
.br
/usr/share/doc/cracklib2-dev/cracklib2-dev.html
.SH AUTHOR
.B cracklib2
is written by Alec Muffett <alecm@crypto.dircon.co.uk>. Manual added
by Jean Pierre LeJacq <jplejacq@quoininc.com>.
